Шаблон консольного скрипта на PHP

Довольно часто по работе приходится писать различного вида скрипты которые выполняются как в консоли, так и при вызове из браузера. Со временем сложился устойчивый стартовый шаблон консольного скрипта на PHP, который собственно и таскаю с сервера на сервер, когда начинаю что-то писать.

Можно конечно использовать для этого различные фреймворки, типа yii, которые предоставляют более удобный для этого функционал, но чаще всего для простых скриптов такого монстра тащить не рационально. Посему имеем то что имеем.

Структура папок следующая:

Шаблон консольного скрипта

Начнем с файла index.php:

Что тут интересного? Сначала объявляем константу, куда ложим текущий физический путь до выполняемого скрипта. Далее загружаем все классы которые находятся в папке class (ака require_once vendor/autoload.php’ при использовании composer). Потом грузим файл config.php:

В котором прописываем логику определения разных констант в зависимости от переданного аргумента командной строки. Скрипт считает, что если аргумент есть — то значит версия скрипта «Для разработки».

В файле functions.php я добавил наиболее часто используемые мной функции:

  • PutLog — вывод лога в файл и дублирование в консоль, если скрипт запущен из командной строки
  • _GET — получение параметра $_GET, если отсутствует, возвращается пусто, или значение по умолчанию
  • _POST — получение параметра $_POST, если отсутствует, возвращается пусто, или значение по умолчанию
  • GetIpUser — попытаться получить IP пользователя вызвавшего выполнение скрипта
  • jsonExit — отдать на выход содержимое в формате json, установить заголовок json и выйти из программы
  • String2Boolean — преобразовать строку в тип boolean, Например на входе может быть строка «True» или число 1, на выходе будет именно Тип. Функция полезна при работе с JSON, где тип зачастую не определен однозначно.

Ну собственно и всё: этот шаблон консольного скрипта можно использовать на серверах как разместив его в cron, так и просто вызывая его через браузер.

Linux: цветной вывод в консоль

Иногда бывает полезно вывод в консоль скриптов чуть «раскрасить», чтобы более наглядно акцентировать внимание пользователя на как-то детали. Для того чтобы вывести текст цветным, необходимо применять специальные наборы спецсимволов. Цвет включается по принципу «реле», т.е. цвет нужно включить, а затем выключить.

ЦветОсновнойФон
Стандартный\033[39m\033[49m
Чёрный\033[30m\033[40m
Тёмно-красный\033[31m\033[41m
Тёмно-зелёный\033[32m\033[42m
Тёмно-жёлтый «Оранжевый»\033[33m\033[43m
Тёмно-синий\033[34m\033[44m
Темно-пурпурный\033[35m\033[45m
Тёмно-голубой\033[36m\033[46m
Светло-серый\033[37m\033[47m
Тёмно-серый\033[90m\033[100m
Красный\033[91m\033[101m
Зелёный\033[92m\033[101m
Оранжевый\033[93m\033[103m
Синий\033[94m\033[104m
Пурпурный\033[95m\033[105m
Голубой\033[96m\033[106m
Белый\033[97m\033[107m
Сброс цвета\033[0m\033[0m
Таблица цветов

Например выведем текст зеленым цветом на PHP:

Результат работы скрипта:

Передать сообщение другому пользователю в консоль

Век живи — век учись (с) Не я конечно знал, что что-то такое должно быть, но просто не пользовался — не нужно было. Так вот, для того чтобы отправить сообщение другому пользователю зашедшему в консоль, достаточно выполнить что-то вроде:

А, потом нажать Enter и начать вводить текст. Его сразу же будет видеть пользователь petya у себя в консоли. Номер терминала можно увидеть по команде w

 




QT Creator : вывод кирилицы в консоль (при отладке)

Чтобы не иметь «крякозябров», нужно настроить кодеки при старте программы:




Консольные команды Linux

» Читать далее
1 2 3 8